// 带标签的模板字符串

const str = console.log`hello world`//console.log作为模板字符串标签，控制台打印了['hello world']

const name = 'tom'
const gender = true

function myTagFunc(strings){
    console.log(strings)
}
const result = myTagFunc`hey,${name} is a ${gender}` /*['hey,','is a','.'] 是模板字符串中内容分割过后的结果，在模板字符串当中可能会有嵌入的表达式，
所以结果数组是按照表达式分割后静态的内容,除了这个数组以外，这个函数还可以接收到所有在我们这个模板字符串当中出现的表达式的返回值*/

function myTagFunc(strings,name,gender){
    console.log(strings,name,gender)
}

const result = myTagFunc`hey,${name} is a ${gender}` //['hey,','is a','.'] tom true

function myTagFunc(strings,name,gender){
    return '123'
}

const result = myTagFunc`hey,${name} is a ${gender}` //123

function myTagFunc(strings,name,gender){
    return strings[0] +name +strings[1] +gender + strings[2]
}

const result = myTagFunc`hey,${name} is a ${gender}`// hey,tom is a true

// 标签函数的作用就是对模板字符串进行加工
function myTagFunc(strings,name,gender){
    const sex = gender ?'man' : 'woman'
    return strings[0] +name +strings[1] +gender + strings[2]
}